const axios = require('axios');

// 测试统计信息接口的字段名格式
async function testStatsFields() {
  try {
    console.log('开始测试统计信息接口字段名...');
    
    // 登录获取token
    console.log('1. 登录获取token...');
    const loginRes = await axios.post('http://localhost:3000/api/auth/login', {
      username: 'user',
      password: '123456'
    });
    
    if (!loginRes.data || !loginRes.data.data || !loginRes.data.data.token) {
      console.error('登录失败:', loginRes.data);
      return;
    }
    
    const token = loginRes.data.data.token;
    console.log('登录成功，获取到token');
    
    // 调用统计信息接口
    console.log('2. 调用统计信息接口...');
    const statsRes = await axios.get('http://localhost:3000/api/users/me/stats', {
      headers: {
        'Authorization': `Bearer ${token}`
      }
    });
    
    if (statsRes.status === 200) {
      console.log('统计信息接口调用成功');
      console.log('响应数据:', JSON.stringify(statsRes.data, null, 2));
      
      // 检查字段名格式
      const data = statsRes.data.data;
      const fields = Object.keys(data);
      
      console.log('\n检查字段名格式:');
      console.log('- 字段列表:', fields.join(', '));
      
      // 验证字段名是否为驼峰命名
      const expectedFields = ['likeCount', 'followerCount', 'videoLikeCount'];
      const hasAllExpectedFields = expectedFields.every(field => fields.includes(field));
      
      if (hasAllExpectedFields) {
        console.log('✅ 所有字段名都符合文档要求（驼峰命名）');
        console.log('✅ likeCount 字段存在，值为:', data.likeCount);
        console.log('✅ followerCount 字段存在，值为:', data.followerCount);
        console.log('✅ videoLikeCount 字段存在，值为:', data.videoLikeCount);
      } else {
        console.error('❌ 字段名不符合文档要求');
        const missingFields = expectedFields.filter(field => !fields.includes(field));
        console.error('缺失的字段:', missingFields);
      }
    } else {
      console.error('统计信息接口调用失败:', statsRes.data);
    }
    
  } catch (error) {
    console.error('测试过程中出错:', error.message);
    if (error.response) {
      console.error('错误响应:', error.response.data);
    }
  }
}

// 运行测试
testStatsFields();